У меня есть запрос DynamoDB с каркасом boto3, который работает на моей локальной машине с Python 3.6, но не на моем сервере с Python 2.7.
Рабочий код на моей локальной машине:
dyndb = boto3.resource('dynamodb')
table = dyndb.Table('XXXXXXX')
response = table.query(
IndexName = "XXX-XXX-index",
ProjectionExpression = "AssessID,SNo,Details,Status,OTP",
KeyConditionExpression = Key('OTP').eq(otp))
Код, выполняющийся на сервере ...
global user_otp
dyndb = boto3.resource('dynamodb')
table = dyndb.Table('XXXXXX')
otp = int(user_otp)
print("converting string otp to int otp") # it is printed on console
response = table.query(
IndexName = "XXX-XXX-index",
ProjectionExpression = "AssessID,SNo,Details,Status,OTP",
KeyConditionExpression = Key('OTP').eq(otp) & Key('SNo').between(1,5))
print ("response code is executing file") # it is not printed on console
Когда я печатаю вывод, отображается первый отпечаток, но не второй отпечаток после запроса таблицы.
Я делаю этот запрос по глобальному индексу с OTP
в качестве ключа раздела и SNo
в качестве ключа сортировки.Я получаю результаты на своем локальном компьютере только с ключом раздела, но не на моем сервере, даже используя ключ разделения и ключ сортировки.
DynamoDB не вызывает никаких исключений.вместо этого я получаю исключение торнадо.
control coming to process and response function
user otp mentioned is 3086and its type <type 'int'>
converting string otp to int otp
ERROR:tornado.application:Exception in callback <functools.partial object at 0x7f33b6ce7890>
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/tornado/ioloop.py", line 758, in _run_callback
ret = callback()
File "/usr/lib64/python2.7/site-packages/tornado/stack_context.py", line 300, in null_wrapper
return fn(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/tornado/ioloop.py", line 779, in _discard_future_result
future.result()
File "/usr/lib64/python2.7/site-packages/tornado/concurrent.py", line 261, in result
raise_exc_info(self._exc_info)
File "/usr/lib64/python2.7/site-packages/tornado/gen.py", line 1141, in run
yielded = self.gen.throw(*exc_info)
File "/usr/lib64/python2.7/site-packages/tornado/websocket.py", line 888, in _receive_frame_loop
yield self._receive_frame()
File "/usr/lib64/python2.7/site-packages/tornado/gen.py", line 1133, in run
value = future.result()
File "/usr/lib64/python2.7/site-packages/tornado/concurrent.py", line 261, in result
raise_exc_info(self._exc_info)
File "/usr/lib64/python2.7/site-packages/tornado/gen.py", line 1147, in run
yielded = self.gen.send(value)
File "/usr/lib64/python2.7/site-packages/tornado/websocket.py", line 975, in _receive_frame
handled_future = self._handle_message(opcode, data)
File "/usr/lib64/python2.7/site-packages/tornado/websocket.py", line 1000, in _handle_message
return self._run_callback(self.handler.on_message, decoded)
File "/usr/lib64/python2.7/site-packages/tornado/websocket.py", line 548, in _run_callback
self.handler.log_exception(*sys.exc_info())
AttributeError: 'WebSocketClientConnection' object has no attribute 'log_exception'